home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue44 / construc / UNIT1.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1999-03-01  |  2.9 KB  |  118 lines

  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   ScktComp, StdCtrls;
  6.  
  7. type
  8.   TForm1 = class(TForm)
  9.     ServerSocket1: TServerSocket;
  10.     Memo1: TMemo;
  11.     procedure ServerSocket1Accept(Sender: TObject;
  12.       Socket: TCustomWinSocket);
  13.     procedure ServerSocket1ClientConnect(Sender: TObject;
  14.       Socket: TCustomWinSocket);
  15.     procedure ServerSocket1ClientDisconnect(Sender: TObject;
  16.       Socket: TCustomWinSocket);
  17.     procedure ServerSocket1ClientRead(Sender: TObject;
  18.       Socket: TCustomWinSocket);
  19.     procedure ServerSocket1ClientWrite(Sender: TObject;
  20.       Socket: TCustomWinSocket);
  21.   private
  22.     { Private declarations }
  23.   public
  24.     { Public declarations }
  25.   end;
  26.  
  27. var
  28.   Form1: TForm1;
  29.  
  30. implementation
  31. {$R *.DFM}
  32. uses
  33.   IniMod;
  34.  
  35. procedure TForm1.ServerSocket1Accept(Sender: TObject;
  36.   Socket: TCustomWinSocket);
  37. begin
  38.   Memo1.Lines.Add('Client accepted');
  39. end;
  40.  
  41. procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  42.   Socket: TCustomWinSocket);
  43. begin
  44.   Memo1.Lines.Add('Client connected');
  45. end;
  46.  
  47. procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
  48.   Socket: TCustomWinSocket);
  49. begin
  50.   Memo1.Lines.Add('Client disconnected');
  51. end;
  52.  
  53. procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  54.   Socket: TCustomWinSocket);
  55. const
  56.   Sep = ';';
  57. var
  58.   i: Integer;
  59.   Str: String;
  60.   Lines: TStringList;
  61.   User,Password: ShortString;
  62. begin
  63.   Memo1.Lines.Add('Client read');
  64.   Str := Socket.ReceiveText;
  65.   { Hier wordt de tekst ontvangen als string.
  66.     Het protocol moet worden ontrafeld en ini file verwerkt etc. }
  67.   Lines := TStringList.Create;
  68.   try
  69.     Memo1.Lines.Add(Str);
  70.     if Pos('PUT',Str) = 1 then { PUT }
  71.     begin
  72.       Delete(Str,1,4);
  73.       User := Copy(Str,1,Pos(Sep,Str)-1);
  74.       Delete(Str,1,Pos(Sep,Str));
  75.       Password := Copy(Str,1,Pos(Sep,Str)-1);
  76.       Delete(Str,1,Pos(Sep,Str));
  77.       Lines.Text := Str;
  78.       try
  79.         IniMod.SetLines(User,Password,Lines);
  80.         Lines.Text := 'OK'
  81.       except
  82.         on E:Exception do
  83.           Lines.Text := E.Message
  84.       end
  85.     end
  86.     else
  87.     begin
  88.       Delete(Str,1,4);
  89.       User := Copy(Str,1,Pos(Sep,Str)-1);
  90.       Delete(Str,1,Pos(Sep,Str));
  91.       Password := Str; { strip CR/LF ?? }
  92.       Str := ''; { no notes }
  93.       try
  94.         IniMod.GetLines(User,Password,Lines)
  95.       except
  96.         on E:Exception do
  97.           Lines.Text := E.Message
  98.       end
  99.     end; { GET }
  100.     { Hier versturen we de tekst, afsluiten met END_OF_TRANSMISSION }
  101.     for i:=0 to Pred(Lines.Count) do
  102.       Socket.SendText(Lines[i] + #13#10);
  103.     Socket.SendText('END_OF_TRANSMISSION' + #13#10);
  104.   finally
  105.     Lines.Free
  106.   end
  107. end;
  108.  
  109. procedure TForm1.ServerSocket1ClientWrite(Sender: TObject;
  110.   Socket: TCustomWinSocket);
  111. begin
  112.   Memo1.Lines.Add('Client write');
  113.   //Memo1.Lines.Add(Socket.ReceiveText);
  114.   //Socket.SendText('HALLO' + #13#10);
  115. end;
  116.  
  117. end.
  118.